<?php
/**
 * Виджет Feed_TdiMenuWidget рисует селектор разделов документов для фильтра ленты.
 */

require_once 'MainPageWidget.php';
class Feed_TdiMenuWidget extends MainPageWidget
{
	public $title = 'Записи по разделам';
	public $rq_tdi = NULL;

	public function render() 
	{
		// статистика итемов, попавших в ленту, по разделам
		$tdis_info = $this->parent->model->getTdiForFeed();
		$m_tdi = $this->ctx->mm->getModel("Tdi", "m");

		// список выбранных разделов из запроса
		$filter_params = $this->parent->getTdiFilterParams();
		$this->rq_tdi = $this->parent->rq_tdi;

		// строим меню
		$this->menu = array();

		// 1. пункт "Все записи раздела"
		$sum = 0; foreach ($tdis_info as $item) $sum += $item['count'];
		$this->menu[-1] = array(
			'section' => -1,
			'tdi' => array('title' => 'Все'),
			'is_total' => true,
			'count' => $sum,
		);

		// 2. Собственно разделов
		foreach ($tdis_info as $item) {
			// fetch tdi
			$tdi = NULL;
			if ($item['section'] == 0) { // Записи без раздела
				$tdi = array(
					'title' => 'без раздела',
				);
			} else {
				$tdi = $m_tdi->getTdi($item['section'])->data;
			}

			// menu item morphism
			$item['tdi'] = $tdi;
			if ($filter_params) $item['checked'] = in_array($item['section'], $filter_params);
			$this->menu[$item['section']] = $item;
		}

		foreach ($this->menu as $key => &$item) {
			$item['checked'] = !$filter_params || in_array($key, $filter_params);
		}

		return $this;
	}

	public function getActionFilter ()
	{
		return $this->parent->hrefFilterByTdi(-1);
	} // end of method getActionFilter

}

